# 作业的问题：
#
# void
import ast
import functools


# 对象是什么
# ID
# TYPE
# VAL


#a = 100
#print(isinstance(a,type(233)))# 第一个参数
                                # 第二个函数就是对照


# a = 100
# a = str(a)
# a = int(a)
# a = complex(a)
# print(a)
# print(type(a))

# int 4 byte = 16 bit
# 0(int)
# 原码:
#
# 负数
# 0000 0000 0000 0000
# 左移：
# 集体位置，往左移动N各单位 , 补上 0
# 2（int)
# 0000 0000 0000 0010
# 向左移动 1 个单位
# 0000 0000 0000 0100
# 2 << 1  == 4
# 向左移动 1 个单位
# 0000 0000 0000 1000
# 4 << 1 == 8
# 左移的意思，数字 *= 2^n

# 右移：
# 集体位置，往右移动N个单位 ， 补上0
# 4(int)
# 0000 0000 0000 0100
# 向右移动一个单位
# 0000 0000 0000 0010
# 4 >> 1 == 2
# 右移的意思，数字 /= 2^n

# 按位运算有时候比 * / 要好很多

# a = -100
#
# a = abs(a)
# print(a)
#


# import math
# print(round(math.pi,100))

##################################
##########1.开始   0.EXIT##########
##################################


# 3 for j in range(0,5):
#         print("吃饭")
#         if j == 3:
#             break
# else:
#     print("吃饱了")
#
# print("######")
#
# for i in range(0,5):
#     print("吃饭")
# print("吃饱了")


# def hello1():
#     def hell02():
#         print("haha")
#     hell02()
#
# hello1()
# def PrintPoint(x = 0, y = 0, z = 0):
#     print(x, y, z)

# print(PrintPoint(x=10,z=20))# 假设我的参数给定的不是按照顺利来的，那么我就必须得给定标识

# def find(input_list,x):
#     for i,value in enumerate(input_list):
#         if value == x:
#             return i
#     else:
#         return None

# def my_cmp(x=2,y=3):
#     if abs(x) < abs(y):
#         return 1
#     elif abs(x) > abs(y):
#         return -1
#     else:
#         return 0 # 相同
# # 在cmp中，只能返回 -1、1、0
#
# a = [-3,1,2,9,-10] # -10,-3,1,2,9
# print(sorted(a,key=functools.cmp_to_key(my_cmp))) # 函数名+()  = 调用

# def log(*msg): # msg变成了一个元组tuple
#    print(type(msg))
#    for m in msg:
#        print(m,end=',')
#
# #t0 = ('hehe','haha','xixi')
# l0 = ['hehe','haha','xixi22']
# log(l0)

# def Log(prefix,*data):
#     print(prefix + '\t'.join(data))
#
# Log('[Notice]','hello','world')

# 形参
# 实参

# python中 序列和字典
# tuple 和 string

# list 、 tuple 、 string 、字典dict

#标准类别操作符


#
# l1 = ['a','b','c']
# l2 = ['a','s','d']
#
# d1 = {
#     "name" : 'joe',
#     "age"  : '20'
# }
# d2 = {
#     "name" : 'www',
#     "age" : '21'
# }
# print(d1["name"] > d2["name"]

# print('joe' > 'www')

# 判断是否存在在序列当中

# in / not in
# a = [2,10,'hh']
# print(2 in a)

# 连接操作符 (+) 把两个相同类型的序列进行连接

# a = [2,10,'hehe']
# b = ['wow']
#
# c = a + b
# print(c)

# 重复操作符 (*)

# a = [1,2,3,4]
# print(a * 2)

# 序列的切片操作


a = [1,2,3,4,5,6,7,8,9,10]

# 最后一个元素的下标为 N - 1 （其中N为序列长度)

# print(a[::]) # 形参1：开始下标(默认为0）形参2: 结束下标（默认最后一个len-1)
# 步长 (默认为 1) ( 甚至第二个冒号可以不加 ）
# 左闭右开
# print(a[:3])
#

# len 求长度
# max 求最大


# a = [2,9,10,3]
# b = max(a)
# print(b)


# min
# c = min(a)
# print(c)



# def Find(input_list,x):
#     for i in range(0,len(input_list)):
#        if input_list[i] == x:
#         return i
#     else:
#         return None
#

# printing original tuples list

# Flatten Tuples List to String
# using join() + list comprehension

# printing result
#task 1

# 拉链
# 字典，列表
# 栈     FIFO
#    ----------
#    a   b    c   d
#     [
#    ----------
# 队列
#   input = [() , ()]
#
# list1,list2 = ('hhe','wow'),('wowo')


# list=[(),(233,'joe')] #string x-> list

# 第一个问题，如何取到后面的字符串?
# 第二个问题,拿到了之后，然后呢? 我们不能够直接将整个字符串放进我们的列表中(?)
# 第三个问题，才是我们要处理的——？
# str4 = "hahaha=hahah"
# counter = 0
# for n in str4:
#     if n == '=':
#         break
#     counter += 1
# print(counter)
ini_dictionary1 = Counter({'nikhil': 1, 'akash' : 5,'manjeet' : 10, 'akshat' : 15})
ini_dictionary2 = Counter({'akash' : 7, 'akshat' : 5,'m' : 15})